﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
using System.Web.Script.Serialization;
using System.Text;

namespace AplicativoUOrganizacional
{
    public partial class MaestroUOrganizacional : System.Web.UI.Page
    {
        private static string auxiliar = "0";
        protected void Page_Load(object sender, EventArgs e)
        {
            GRUsuario objUsuario = (GRUsuario)Session["Usuario"];

            if (objUsuario == null)
                Response.Redirect("InicioSesion.aspx");

        }

          protected void btnBuscar1_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                HttpWebRequest req2 = (HttpWebRequest)WebRequest
              .Create(String.Format("http://localhost:10001/GRUnidadOrganizacionales.svc/GRUnidadOrganizacionales/{0}", txtCodigo.Text));
                req2.Method = "GET";
                HttpWebResponse res2 = (HttpWebResponse)req2.GetResponse();
                StreamReader reader2 = new StreamReader(res2.GetResponseStream());
                string GRUnidadOrganizacionalJson2 = reader2.ReadToEnd();
                JavaScriptSerializer js2 = new JavaScriptSerializer();
                GRUnidadOrganizacional GRUnidadOrganizacionalObtenido = js2.Deserialize<GRUnidadOrganizacional>(GRUnidadOrganizacionalJson2);
                if (GRUnidadOrganizacionalObtenido != null)
                {
                    auxiliar = "1";
                    txtNombre.Text = GRUnidadOrganizacionalObtenido.vNomUOr;
                    return;

                }

                auxiliar = "0";
                string script = @"<script type='text/javascript'>alert('Unidad Organizacional no existe')</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
            catch  (WebException a)
            {
                HttpStatusCode code = ((HttpWebResponse)a.Response).StatusCode;
                string message = ((HttpWebResponse)a.Response).StatusDescription;
                StreamReader reader = new StreamReader(a.Response.GetResponseStream());
                string error = reader.ReadToEnd();
                JavaScriptSerializer js = new JavaScriptSerializer();

                Error Mensaje = new Error();
                Mensaje = js.Deserialize<Error>(error);

                string script = @"<script type='text/javascript'>alert('"+Mensaje.descripcionNegocio+"')</script>";
               ScriptManager.RegisterStartupScript(this,typeof(Page),"alerta",script,false);
            
            
            }

        }

        protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
        {
            Limpiar();
        }

        

        protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
        {
            GRUsuario objUsuario = (GRUsuario)Session["Usuario"];

            string iCodUOr = txtCodigo.Text;
            string iCodUsu = objUsuario.iCodUsu.ToString();
                        
            HttpWebRequest req = (HttpWebRequest)WebRequest
                .Create(String.Format("http://localhost:10001/GRUnidadOrganizacionales.svc/GRUnidadOrganizacionales/{0}/{1}",iCodUOr,iCodUsu));
            req.Method = "GET";         
            var res = (HttpWebResponse)req.GetResponse();
            StreamReader reader2 = new StreamReader(res.GetResponseStream());
            string estadoserializado = reader2.ReadToEnd();
            JavaScriptSerializer js2 = new JavaScriptSerializer();
            int estado = js2.Deserialize<int>(estadoserializado);
            if (estado == 1) {
                string script2 = @"<script type='text/javascript'>alert('Unidad asociada a Usuario No se puede eliminar')</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script2, false);

                return;
            }

            try
            {

                var json = new JavaScriptSerializer().Serialize(txtCodigo.Text);

                string postdata4 = json;  //JSON
                byte[] data4 = Encoding.UTF8.GetBytes(postdata4);
                HttpWebRequest req4 = (HttpWebRequest)WebRequest
                    .Create("http://localhost:10001/GRUnidadOrganizacionales.svc/GRUnidadOrganizacionales");
                req4.Method = "DELETE";
                req4.ContentLength = data4.Length;
                req4.ContentType = "application/json";
                var reqStream4 = req4.GetRequestStream();
                reqStream4.Write(data4, 0, data4.Length);
                var res4 = (HttpWebResponse)req4.GetResponse();


                string script = @"<script type='text/javascript'>alert('Se elimino la Unidad" + txtCodigo.Text + "')</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                Limpiar();

            }

            catch {

                string script = @"<script type='text/javascript'>alert('No elimino la Unidad" + txtCodigo.Text + "')</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            
            }




        }



        void Limpiar()
        { 
        
        txtCodigo.Text ="";
        txtNombre.Text = "";

        
        }
        
        protected void btnRegistra_Click(object sender, ImageClickEventArgs e)
        {
            GRUsuario objUsuario = (GRUsuario)Session["Usuario"];
            
            if(auxiliar.Equals("0")){

            GRUnidadOrganizacional obj = new GRUnidadOrganizacional();
            obj.iCodUOr = int.Parse(txtCodigo.Text);
            obj.vNomUOr = txtNombre.Text;
            obj.iCodUsu = objUsuario.iCodUsu;
            obj.vNomTer = objUsuario.vNomTer;

            var json = new JavaScriptSerializer().Serialize(obj);

            byte[] data = Encoding.UTF8.GetBytes(json);
            HttpWebRequest req = (HttpWebRequest)WebRequest
                .Create("http://localhost:10001/GRUnidadOrganizacionales.svc/GRUnidadOrganizacionales");
            req.Method = "POST";
            req.ContentLength = data.Length;
            req.ContentType = "application/json";
            var reqStream = req.GetRequestStream();
            reqStream.Write(data, 0, data.Length);
            HttpWebResponse res = null;

            try
            {
                res = (HttpWebResponse)req.GetResponse();
                StreamReader reader = new StreamReader(res.GetResponseStream());
                string GRUnidadOrganizacionalJson = reader.ReadToEnd();
                JavaScriptSerializer js = new JavaScriptSerializer();
                GRUnidadOrganizacional GRUnidadOrganizacionalCreado = new GRUnidadOrganizacional();
                GRUnidadOrganizacionalCreado = js.Deserialize<GRUnidadOrganizacional>(GRUnidadOrganizacionalJson);

                string script = @"<script type='text/javascript'>alert('Se guardo correctamente Unidad" + GRUnidadOrganizacionalCreado.iCodUOr + "')</script>";
               ScriptManager.RegisterStartupScript(this,typeof(Page),"alerta",script,false);
               Limpiar(); 


            }
            catch (WebException a)
            {
                HttpStatusCode code = ((HttpWebResponse)a.Response).StatusCode;
                string message = ((HttpWebResponse)a.Response).StatusDescription;
                StreamReader reader = new StreamReader(a.Response.GetResponseStream());
                string error = reader.ReadToEnd();
                JavaScriptSerializer js = new JavaScriptSerializer();

                Error Mensaje = new Error();
                Mensaje = js.Deserialize<Error>(error);

                string script = @"<script type='text/javascript'>alert('"+Mensaje.descripcionNegocio+"')</script>";
               ScriptManager.RegisterStartupScript(this,typeof(Page),"alerta",script,false);
            }
            } else{
    
      GRUnidadOrganizacional obj3 = new GRUnidadOrganizacional();
            obj3.iCodUOr = int.Parse(txtCodigo.Text);
            obj3.vNomUOr = txtNombre.Text;
            obj3.iCodUsu = 1;
            obj3.vNomTer = "ESTACION 9";

            var json3 = new JavaScriptSerializer().Serialize(obj3);

            byte[] data3 = Encoding.UTF8.GetBytes(json3);
            HttpWebRequest req3 = (HttpWebRequest)WebRequest
                .Create("http://localhost:10001/GRUnidadOrganizacionales.svc/GRUnidadOrganizacionales");
            req3.Method = "PUT";
            req3.ContentLength = data3.Length;
            req3.ContentType = "application/json";
            var reqStream3 = req3.GetRequestStream();
            reqStream3.Write(data3, 0, data3.Length);
            HttpWebResponse res3 = null;

            try
            {
                res3 = (HttpWebResponse)req3.GetResponse();
                StreamReader reader = new StreamReader(res3.GetResponseStream());
                string GRUnidadOrganizacionalJson = reader.ReadToEnd();
                JavaScriptSerializer js = new JavaScriptSerializer();
                GRUnidadOrganizacional UnidadOrganizacionalAModificar = new GRUnidadOrganizacional();
                UnidadOrganizacionalAModificar = js.Deserialize<GRUnidadOrganizacional>(GRUnidadOrganizacionalJson);

                string script = @"<script type='text/javascript'>alert('Se guardo correctamente Unidad" + UnidadOrganizacionalAModificar.iCodUOr + "')</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                Limpiar();
            }
            catch (WebException a)
            {
                HttpStatusCode code = ((HttpWebResponse)a.Response).StatusCode;
                string message = ((HttpWebResponse)a.Response).StatusDescription;
                StreamReader reader = new StreamReader(a.Response.GetResponseStream());
                string error = reader.ReadToEnd();
                JavaScriptSerializer js = new JavaScriptSerializer();
                string mensaje = js.Deserialize<string>(error);

                string script = @"<script type='text/javascript'>alert('Se modifico correctamente Unidad " + mensaje + "')</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                Limpiar(); 
            }


            }
        }

       
    
        
        }
    

    public class GRUnidadOrganizacional
    {
        public int iCodUOr { get; set; }
        public string vNomUOr { get; set; }
        public int iCodUsu { get; set; }

        public string vNomTer { get; set; }
        //public DateTime dtFecAct { get; set; }
    }

      public class GRUsuarioUO
    {
               
        public int iCodUsuUOr { get; set; }
        public int iCodUOr { get; set; }
        public int iCodUsu { get; set; }
        public DateTime dtFecIniUsuUO { get; set; }
        public DateTime dtFecFinUsuUO { get; set; }
        public byte bActivoUsuUo { get; set; }
        public int iCodUsuA { get; set; }
        public int vNomTer { get; set; }
        public DateTime dtFecAct { get; set; }

}
    public class Error
{
    public string codigoNegocio { get; set; }
    public string descripcionNegocio { get; set; }
}
        }



   